package com.smedi.ismedi.progress.core.port.adapter.persistence.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.smedi.ismedi.database.starter.model.BasicFieldEntity;
import com.smedi.ismedi.progress.api.dto.response.FileResponse;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.File;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 进度计划项目主表Entity类
 *
 * @author pengyan
 * @date 2022/09/16
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName(value = "progress_week_month_detail")
public class ProgressReportDetailEntity extends BasicFieldEntity implements Serializable {

    /**
     * 主键id
     */
    private  Long	id;
    /**
     * 任务名称前缀（序号）
     */
    private  String	namePrefix;
    /**
     * (任务/里程碑)名称
     */
    private  String	name;
    /**
     * 类型(0、里程碑 1、关键任务  3、其他 4、一级任务 5、二级任务 6、三级任务 7、四级任务 8、五级任务)
     */
    private  String	type;
    /**
     * 项目id
     */
    private  Long	projectId;
    /**
     * 关联progress_week_month_report表id
     */
    private  Long	progressWeekMonthReportId;
    /**
     * 计划开始时间
     */
    private  LocalDateTime	scheduleStartTime;
    /**
     * 计划完成时间
     */
    private  LocalDateTime	scheduleEndTime;
    /**
     * 实际开始时间
     */
    private  LocalDateTime	realStartTime;
    /**
     * 实际完成时间
     */
    private  LocalDateTime	realEndTime;
    /**
     * 完成情况(0、未完成  1、完成)
     */
    private  Long	completion;
    /**
     * 进度状态(0、滞后  1、正常)
     */
    private  Long	status;
    /**
     * 滞后时长
     */
    private  Long	lagTime;
    /**
     * 照片url
     */
    private  String	photoUrl;

    /**
     * 照片文件信息
     */
    @TableField(exist = false)
    private  List<FileResponse>	photoFile;
    /**
     * 完成百分比
     */
    private  String	percentage;
    /**
     * 创建用户的id
     */
    private  Long	createdUserId;
    /**
     * 创建日期
     */
    private  LocalDateTime	createdDate;
    /**
     * 最后更新时间
     */
    private  LocalDateTime	latestUpdatedDate;
    /**
     * 最后更新的用户id
     */
    private  Long	latestUpdatedUserId;
    /**
     * 父级id
     */
    private  Long	parentId;
    /**
     * 父级id
     */
    private  String	parentName;

    /**
     * 任务排序号
     */
    private Integer sortIndex;
    /**
     * 0：不可编辑，1:编辑
     */
    private Integer editFlag;

    /**
     * 照片信息
     */
    @TableField(exist = false)
    private  List<ProgressAttachmentImageEntity> progressAttachmentImageEntityList;
}
